diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c
index 5a023a2..ee646fd 100644
--- a/drivers/usb/gadget/f_thor.c
+++ b/drivers/usb/gadget/f_thor.c
@@ -174,7 +174,7 @@
 					transfer_buffer, THOR_STORE_UNIT_SIZE,
 					(*cnt)++);
 			if (ret) {
-				pr_err("DFU write failed [%d] cnt: %d",
+				pr_err("DFU write failed [%d] cnt: %d\n",
 				      ret, *cnt);
 				return ret;
 			}
@@ -224,14 +224,14 @@
 
 	transfer_buffer = dfu_get_buf(dfu_entity);
 	if (!transfer_buffer) {
-		pr_err("Transfer buffer not allocated!");
+		pr_err("Transfer buffer not allocated!\n");
 		return -ENXIO;
 	}
 
 	if (left) {
 		ret = dfu_write(dfu_entity, transfer_buffer, left, cnt++);
 		if (ret) {
-			pr_err("DFU write failed [%d]: left: %llu", ret, left);
+			pr_err("DFU write failed[%d]: left: %llu\n", ret, left);
 			return ret;
 		}
 	}
@@ -245,7 +245,7 @@
 	 */
 	ret = dfu_flush(dfu_entity, transfer_buffer, 0, cnt);
 	if (ret)
-		pr_err("DFU flush failed!");
+		pr_err("DFU flush failed!\n");
 
 	return ret;
 }
@@ -290,7 +290,7 @@
 
 		alt_setting_num = dfu_get_alt(f_name);
 		if (alt_setting_num < 0) {
-			pr_err("Alt setting [%d] to write not found!",
+			pr_err("Alt setting [%d] to write not found!\n",
 			      alt_setting_num);
 			rsp->ack = -ENODEV;
 			ret = rsp->ack;
@@ -316,7 +316,7 @@
 		debug("DL EXIT\n");
 		break;
 	default:
-		pr_err("Operation not supported: %d", rqt->rqt_data);
+		pr_err("Operation not supported: %d\n", rqt->rqt_data);
 		ret = -ENOTSUPP;
 	}
 
@@ -347,7 +347,7 @@
 		puts("RQT: UPLOAD not supported!\n");
 		break;
 	default:
-		pr_err("unknown request (%d)", rqt->rqt);
+		pr_err("unknown request (%d)\n", rqt->rqt);
 	}
 
 	return ret;
@@ -546,7 +546,7 @@
 
 		status = usb_ep_queue(dev->out_ep, dev->out_req, 0);
 		if (status) {
-			pr_err("kill %s:  resubmit %d bytes --> %d",
+			pr_err("kill %s:  resubmit %d bytes --> %d\n",
 			      dev->out_ep->name, dev->out_req->length, status);
 			usb_ep_set_halt(dev->out_ep);
 			return -EAGAIN;
@@ -580,7 +580,7 @@
 
 	status = usb_ep_queue(dev->in_ep, dev->in_req, 0);
 	if (status) {
-		pr_err("kill %s:  resubmit %d bytes --> %d",
+		pr_err("kill %s:  resubmit %d bytes --> %d\n",
 		      dev->in_ep->name, dev->in_req->length, status);
 		usb_ep_set_halt(dev->in_ep);
 	}
@@ -613,7 +613,7 @@
 	case -ESHUTDOWN:		/* disconnect from host */
 	case -EREMOTEIO:                /* short read */
 	case -EOVERFLOW:
-		pr_err("ERROR:%d", status);
+		pr_err("ERROR:%d\n", status);
 		break;
 	}
 
@@ -653,7 +653,7 @@
 		break;
 
 	default:
-		pr_err("thor_setup: unknown request: %d", ctrl->bRequest);
+		pr_err("thor_setup: unknown request: %d\n", ctrl->bRequest);
 	}
 
 	if (value >= 0) {
@@ -984,7 +984,7 @@
 		debug("Communication Data interface\n");
 		result = thor_eps_setup(f);
 		if (result)
-			pr_err("%s: EPs setup failed!", __func__);
+			pr_err("%s: EPs setup failed!\n", __func__);
 		dev->configuration_done = 1;
 		break;
 	}
